package front_message_api

import (
	"blog_go/global"
	"blog_go/models"
	"blog_go/models/res"
	"blog_go/utils"
	"github.com/gin-gonic/gin"
)

type MessageListMyRsp struct {
	MessageList [][]models.MessageModel
}

func (MessageApi) MessageListMy(c *gin.Context) {
	_claims := c.MustGet(utils.Claims)
	claims := _claims.(*utils.CustomClaims)
	var messageModelList []models.MessageModel
	global.DB.Where("send_user_id = ? or rev_user_id = ?", claims.UserID, claims.UserID).Order("created_at desc").Find(&messageModelList)
	if len(messageModelList) == 0 {
		res.OkWithMessage("没有找到消息对话", c)
		return
	}
	messageMap := make(map[uint][]models.MessageModel)
	for _, model := range messageModelList {
		messageMap[model.SendUserID+model.RevUserID] = append(messageMap[model.SendUserID+model.RevUserID], model)
	}
	var messageList [][]models.MessageModel
	for _, messageModels := range messageMap {
		messageList = append(messageList, messageModels)
	}
	res.OkWithDate(MessageListMyRsp{
		MessageList: messageList,
	}, c)
}
